candy_2017 %>% 
  get_dupes()
No variable names specified - using all columns.

No duplicate combinations found of: Internal ID, Q1: GOING OUT?, Q2: GENDER, Q3: AGE, Q4: COUNTRY, Q5: STATE, PROVINCE, COUNTY, ETC, Q6 | 100 Grand Bar, Q6 | Anonymous brown globs that come in black and orange wrappers  (a.k.a. Mary Janes), Q6 | Any full-sized candy bar, ... and 111 other variables

# did not use these

candy_2015 <- candy_2015 %>% 
  clean_names() %>% 
  rename(age = "how_old_are_you",
         trick_or_treating = "are_you_going_actually_going_trick_or_treating_yourself",
         brown_globs = "anonymous_brown_globs_that_come_in_black_and_orange_wrappers",
         intravenous_corn_syrup = "vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein",
         restaurant_candy = "candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants",
         legal_tender = "cash_or_other_forms_of_legal_tender",
         chick_o_sticks = "chick_o_sticks_we_don_t_know_what_that_is")

candy_2016 <- candy_2016 %>% 
  clean_names() %>% 
  rename(age = "how_old_are_you",
         gender = "your_gender",
         trick_or_treating = "are_you_going_actually_going_trick_or_treating_yourself",
         country = "which_country_do_you_live_in",
         state = "which_state_province_county_do_you_live_in",
         intravenous_corn_syrup = "vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein",
         restaurant_candy = "candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants",
         legal_tender = "cash_or_other_forms_of_legal_tender",
         chick_o_sticks = "chick_o_sticks_we_don_t_know_what_that_is")

candy_2016 <- candy_2016 %>% 
   rename(
     brown_globes = "anonymous_brown_globs_that_come_in_black_and_orange_wrappers"
     )

candy_2017 <- candy_2017 %>% 
  clean_names()
  data_input %>% 
    clean_names() %>%
    remove_empty(which = c("rows", "cols"))
Error in clean_names(.) : object 'data_input' not found

candy_2015 <- clean_tables(candy_2015)
candy_2016 <- clean_tables(candy_2016)
candy_2017 <- clean_tables(candy_2017)
compare_df_cols(candy_2015, candy_2016, return = "match", bind_method = "bind_rows")
names(combined_candy)
  [1] "timestamp"                                                                                                                         
  [2] "age"                                                                                                                               
  [3] "going_out"                                                                                                                         
  [4] "butterfinger"                                                                                                                      
  [5] "x100_grand_bar"                                                                                                                    
  [6] "brown_globs"                                                                                                                       
  [7] "any_full_sized_candy_bar"                                                                                                          
  [8] "black_jacks"                                                                                                                       
  [9] "bonkers"                                                                                                                           
 [10] "bottle_caps"                                                                                                                       
 [11] "boxo_raisins"                                                                                                                      
 [12] "brach_products_not_including_candy_corn"                                                                                           
 [13] "bubble_gum"                                                                                                                        
 [14] "cadbury_creme_eggs"                                                                                                                
 [15] "candy_corn"                                                                                                                        
 [16] "vials_of_pure_high_fructose_corn_syrup_for_main_lining_into_your_vein"                                                             
 [17] "candy_that_is_clearly_just_the_stuff_given_out_for_free_at_restaurants"                                                            
 [18] "cash_or_other_forms_of_legal_tender"                                                                                               
 [19] "chiclets"                                                                                                                          
 [20] "caramellos"                                                                                                                        
 [21] "snickers"                                                                                                                          
 [22] "hersheys_dark_chocolate"                                                                                                           
 [23] "dental_paraphenalia"                                                                                                               
 [24] "dots"                                                                                                                              
 [25] "fuzzy_peaches"                                                                                                                     
 [26] "generic_brand_acetaminophen"                                                                                                       
 [27] "glow_sticks"                                                                                                                       
 [28] "broken_glow_stick"                                                                                                                 
 [29] "goo_goo_clusters"                                                                                                                  
 [30] "good_n_plenty"                                                                                                                     
 [31] "gum_from_baseball_cards"                                                                                                           
 [32] "gummy_bears_straight_up"                                                                                                           
 [33] "creepy_religious_comics_chick_tracts"                                                                                              
 [34] "healthy_fruit"                                                                                                                     
 [35] "heath_bar"                                                                                                                         
 [36] "hersheys_kisses"                                                                                                                   
 [37] "hershey_s_milk_chocolate"                                                                                                          
 [38] "hugs_actual_physical_hugs"                                                                                                         
 [39] "jolly_rancher_bad_flavor"                                                                                                          
 [40] "jolly_ranchers_good_flavor"                                                                                                        
 [41] "kale_smoothie"                                                                                                                     
 [42] "kinder_happy_hippo"                                                                                                                
 [43] "kit_kat"                                                                                                                           
 [44] "hard_candy"                                                                                                                        
 [45] "lapel_pins"                                                                                                                        
 [46] "lemon_heads"                                                                                                                       
 [47] "licorice"                                                                                                                          
 [48] "licorice_not_black"                                                                                                                
 [49] "lindt_truffle"                                                                                                                     
 [50] "lollipops"                                                                                                                         
 [51] "mars"                                                                                                                              
 [52] "mary_janes"                                                                                                                        
 [53] "maynards"                                                                                                                          
 [54] "milk_duds"                                                                                                                         
 [55] "laffy_taffy"                                                                                                                       
 [56] "minibags_of_chips"                                                                                                                 
 [57] "joy_joy_mit_iodine"                                                                                                                
 [58] "reggie_jackson_bar"                                                                                                                
 [59] "pixy_stix"                                                                                                                         
 [60] "nerds"                                                                                                                             
 [61] "nestle_crunch"                                                                                                                     
 [62] "nown_laters"                                                                                                                       
 [63] "pencils"                                                                                                                           
 [64] "milky_way"                                                                                                                         
 [65] "reese_s_peanut_butter_cups"                                                                                                        
 [66] "tolberone_something_or_other"                                                                                                      
 [67] "runts"                                                                                                                             
 [68] "junior_mints"                                                                                                                      
 [69] "senior_mints"                                                                                                                      
 [70] "mint_kisses"                                                                                                                       
 [71] "mint_juleps"                                                                                                                       
 [72] "mint_leaves"                                                                                                                       
 [73] "peanut_m_m_s"                                                                                                                      
 [74] "regular_m_ms"                                                                                                                      
 [75] "mint_m_ms"                                                                                                                         
 [76] "ribbon_candy"                                                                                                                      
 [77] "rolos"                                                                                                                             
 [78] "skittles"                                                                                                                          
 [79] "smarties_american"                                                                                                                 
 [80] "smarties_commonwealth"                                                                                                             
 [81] "chick_o_sticks_we_don_t_know_what_that_is"                                                                                         
 [82] "spotted_dick"                                                                                                                      
 [83] "starburst"                                                                                                                         
 [84] "swedish_fish"                                                                                                                      
 [85] "sweetums"                                                                                                                          
 [86] "those_odd_marshmallow_circus_peanut_things"                                                                                        
 [87] "three_musketeers"                                                                                                                  
 [88] "peterson_brand_sidewalk_chalk"                                                                                                     
 [89] "peanut_butter_bars"                                                                                                                
 [90] "peanut_butter_jars"                                                                                                                
 [91] "trail_mix"                                                                                                                         
 [92] "twix"                                                                                                                              
 [93] "vicodin"                                                                                                                           
 [94] "white_bread"                                                                                                                       
 [95] "whole_wheat_anything"                                                                                                              
 [96] "york_peppermint_patties"                                                                                                           
 [97] "please_leave_any_remarks_or_comments_regarding_your_choices"                                                                       
 [98] "please_list_any_items_not_included_above_that_give_you_joy"                                                                        
 [99] "please_list_any_items_not_included_above_that_give_you_despair"                                                                    
[100] "guess_the_number_of_mints_in_my_hand"                                                                                              
[101] "betty_or_veronica"                                                                                                                 
[102] "check_all_that_apply_i_cried_tears_of_sadness_at_the_end_of"                                                                       
[103] "dress"                                                                                                                             
[104] "what_is_your_favourite_font"                                                                                                       
[105] "if_you_squint_really_hard_the_words_intelligent_design_would_look_like"                                                            
[106] "fill_in_the_blank_imitation_is_a_form_of"                                                                                          
[107] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_jk_rowling"                                     
[108] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_jj_abrams"                                      
[109] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_beyonce"                                        
[110] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_bieber"                                         
[111] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_kevin_bacon"                                    
[112] "please_estimate_the_degree_s_of_separation_you_have_from_the_following_celebrities_francis_bacon_1561_1626"                        
[113] "sea_salt_flavored_stuff_probably_chocolate_since_this_is_the_it_flavor_of_the_year"                                                
[114] "necco_wafers"                                                                                                                      
[115] "day"                                                                                                                               
[116] "gender"                                                                                                                            
[117] "country"                                                                                                                           
[118] "which_state_province_county_do_you_live_in"                                                                                        
[119] "bonkers_the_board_game"                                                                                                            
[120] "chardonnay"                                                                                                                        
[121] "coffee_crisp"                                                                                                                      
[122] "dove_bars"                                                                                                                         
[123] "licorice_yes_black"                                                                                                                
[124] "mike_and_ike"                                                                                                                      
[125] "blue_m_ms"                                                                                                                         
[126] "red_m_ms"                                                                                                                          
[127] "third_party_m_ms"                                                                                                                  
[128] "mr_goodbar"                                                                                                                        
[129] "peeps"                                                                                                                             
[130] "person_of_interest_season_3_dvd_box_set_not_including_disc_4_with_hilarious_outtakes"                                              
[131] "reeses_pieces"                                                                                                                     
[132] "sourpatch_kids_i_e_abominations_of_nature"                                                                                         
[133] "sweet_tarts"                                                                                                                       
[134] "sweetums_a_friend_to_diabetes"                                                                                                     
[135] "tic_tacs"                                                                                                                          
[136] "whatchamacallit_bars"                                                                                                              
[137] "please_leave_any_witty_snarky_or_thoughtful_remarks_or_comments_regarding_your_choices"                                            
[138] "do_you_eat_apples_the_correct_way_east_to_west_side_to_side_or_do_you_eat_them_like_a_freak_of_nature_south_to_north_bottom_to_top"
[139] "when_you_see_the_above_image_of_the_4_different_websites_which_one_would_you_most_likely_check_out_please_be_honest"               
[140] "internal_id"                                                                                                                       
[141] "state"                                                                                                                             
[142] "green_party_m_ms"                                                                                                                  
[143] "independent_m_ms"                                                                                                                  
[144] "abstained_from_m_ming"                                                                                                             
[145] "real_housewives_of_orange_county_season_9_blue_ray"                                                                                
[146] "sandwich_sized_bags_filled_with_boo_berry_crunch"                                                                                  
[147] "take_5"                                                                                                                            
[148] "joy_other"                                                                                                                         
[149] "despair_other"                                                                                                                     
[150] "other_comments"                                                                                                                    
[151] "x114"                                                                                                                              
[152] "media_daily_dish"                                                                                                                  
[153] "media_science"                                                                                                                     
[154] "media_espn"                                                                                                                        
[155] "media_yahoo"                                                                                                                       
[156] "click_coordinates_x_y"                                                                                                             

axe all the rows that are not about candy - would give an accurate count of candy ratings

names(combined_candy)

specific_candy_data <- select(combined_candy, -18, -33, -38, -41, -45, -56, -63,
                              -88, -93:-95, -97:-112, -119, -130, -137:-139,
                              -145, -148:-156)

names(specific_candy_data)

## bring all non-candy data to beginning

specific_candy_data <- specific_candy_data %>% 
  select(timestamp:going_out, day:which_state_province_county_do_you_live_in,
         internal_id:state, everything())

## change the values of internal_id and timestamp to just the year


specific_candy_data <- specific_candy_data %>% 
  mutate(timestamp = as.character(timestamp)) %>% 
  mutate(timestamp = if_else(str_detect(timestamp, "2015-+"), "2015", "2016"))

# not sure I need this? 
specific_candy_data %>% 
  rename(year = "timestamp")

specific_candy_data <- specific_candy_data %>% 
  mutate(internal_id = as.character(internal_id)) 

specific_candy_data <- specific_candy_data %>% 
  mutate(internal_id = if_else(str_detect(internal_id, "90+"), "2017", "NO YEAR"))



## merge timestamp and internal_id to create a year column

specific_candy_data <-  specific_candy_data %>% 
  unite("year", timestamp, internal_id, na.rm = TRUE) %>%
  mutate(year = na_if(year, ""))
## dont think i need this bit now
  mutate(year = recode(year, "2015_NA" = "2015", "2016_NA" = "2016", "2017_NA" = "2017"))

#### NEED TO FIX year to not include NA_2017 ####

## merge state with which state... 

specific_candy_data <-  specific_candy_data %>% 
  unite("state_county", state, which_state_province_county_do_you_live_in, na.rm = TRUE) %>% 
  mutate(state_county = na_if(state_county, ""))

specific_candy_data

clean the age column

clean the country column

count all sweet ratings/reviews

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CgpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KHN0cmluZ3IpCgoKbmFtZXMoY2FuZHlfMjAxNSkKbmFtZXMoY2FuZHlfMjAxNikKbmFtZXMoY2FuZHlfMjAxNykKCgp2aWV3KGNhbmR5XzIwMTUpCnZpZXcoY2FuZHlfMjAxNikKdmlldyhjYW5keV8yMDE3KQoKY2FuZHlfMjAxNSAlPiUgCiAgZ2V0X2R1cGVzKCkKCmNhbmR5XzIwMTYgJT4lIAogIGdldF9kdXBlcygpCgpjYW5keV8yMDE3ICU+JSAKICBnZXRfZHVwZXMoKQoKCgpgYGAKCmBgYHtyfQoKIyBkaWQgbm90IHVzZSB0aGVzZQoKY2FuZHlfMjAxNSA8LSBjYW5keV8yMDE1ICU+JSAKICBjbGVhbl9uYW1lcygpICU+JSAKICByZW5hbWUoYWdlID0gImhvd19vbGRfYXJlX3lvdSIsCiAgICAgICAgIHRyaWNrX29yX3RyZWF0aW5nID0gImFyZV95b3VfZ29pbmdfYWN0dWFsbHlfZ29pbmdfdHJpY2tfb3JfdHJlYXRpbmdfeW91cnNlbGYiLAogICAgICAgICBicm93bl9nbG9icyA9ICJhbm9ueW1vdXNfYnJvd25fZ2xvYnNfdGhhdF9jb21lX2luX2JsYWNrX2FuZF9vcmFuZ2Vfd3JhcHBlcnMiLAogICAgICAgICBpbnRyYXZlbm91c19jb3JuX3N5cnVwID0gInZpYWxzX29mX3B1cmVfaGlnaF9mcnVjdG9zZV9jb3JuX3N5cnVwX2Zvcl9tYWluX2xpbmluZ19pbnRvX3lvdXJfdmVpbiIsCiAgICAgICAgIHJlc3RhdXJhbnRfY2FuZHkgPSAiY2FuZHlfdGhhdF9pc19jbGVhcmx5X2p1c3RfdGhlX3N0dWZmX2dpdmVuX291dF9mb3JfZnJlZV9hdF9yZXN0YXVyYW50cyIsCiAgICAgICAgIGxlZ2FsX3RlbmRlciA9ICJjYXNoX29yX290aGVyX2Zvcm1zX29mX2xlZ2FsX3RlbmRlciIsCiAgICAgICAgIGNoaWNrX29fc3RpY2tzID0gImNoaWNrX29fc3RpY2tzX3dlX2Rvbl90X2tub3dfd2hhdF90aGF0X2lzIikKCmNhbmR5XzIwMTYgPC0gY2FuZHlfMjAxNiAlPiUgCiAgY2xlYW5fbmFtZXMoKSAlPiUgCiAgcmVuYW1lKGFnZSA9ICJob3dfb2xkX2FyZV95b3UiLAogICAgICAgICBnZW5kZXIgPSAieW91cl9nZW5kZXIiLAogICAgICAgICB0cmlja19vcl90cmVhdGluZyA9ICJhcmVfeW91X2dvaW5nX2FjdHVhbGx5X2dvaW5nX3RyaWNrX29yX3RyZWF0aW5nX3lvdXJzZWxmIiwKICAgICAgICAgY291bnRyeSA9ICJ3aGljaF9jb3VudHJ5X2RvX3lvdV9saXZlX2luIiwKICAgICAgICAgc3RhdGUgPSAid2hpY2hfc3RhdGVfcHJvdmluY2VfY291bnR5X2RvX3lvdV9saXZlX2luIiwKICAgICAgICAgaW50cmF2ZW5vdXNfY29ybl9zeXJ1cCA9ICJ2aWFsc19vZl9wdXJlX2hpZ2hfZnJ1Y3Rvc2VfY29ybl9zeXJ1cF9mb3JfbWFpbl9saW5pbmdfaW50b195b3VyX3ZlaW4iLAogICAgICAgICByZXN0YXVyYW50X2NhbmR5ID0gImNhbmR5X3RoYXRfaXNfY2xlYXJseV9qdXN0X3RoZV9zdHVmZl9naXZlbl9vdXRfZm9yX2ZyZWVfYXRfcmVzdGF1cmFudHMiLAogICAgICAgICBsZWdhbF90ZW5kZXIgPSAiY2FzaF9vcl9vdGhlcl9mb3Jtc19vZl9sZWdhbF90ZW5kZXIiLAogICAgICAgICBjaGlja19vX3N0aWNrcyA9ICJjaGlja19vX3N0aWNrc193ZV9kb25fdF9rbm93X3doYXRfdGhhdF9pcyIpCgpjYW5keV8yMDE2IDwtIGNhbmR5XzIwMTYgJT4lIAogICByZW5hbWUoCiAgICAgYnJvd25fZ2xvYmVzID0gImFub255bW91c19icm93bl9nbG9ic190aGF0X2NvbWVfaW5fYmxhY2tfYW5kX29yYW5nZV93cmFwcGVycyIKICAgICApCgpjYW5keV8yMDE3IDwtIGNhbmR5XzIwMTcgJT4lIAogIGNsZWFuX25hbWVzKCkKCmBgYAoKCmBgYHtyfQoKY2xlYW5fdGFibGVzIDwtIGZ1bmN0aW9uKGRhdGFfaW5wdXQpewogIGRhdGFfaW5wdXQgJT4lIAogICAgY2xlYW5fbmFtZXMoKSAlPiUKICAgIHJlbW92ZV9lbXB0eSh3aGljaCA9IGMoInJvd3MiLCAiY29scyIpKQp9CmBgYAoKYGBge3J9CgpjYW5keV8yMDE1IDwtIGNsZWFuX3RhYmxlcyhjYW5keV8yMDE1KQpjYW5keV8yMDE2IDwtIGNsZWFuX3RhYmxlcyhjYW5keV8yMDE2KQpjYW5keV8yMDE3IDwtIGNsZWFuX3RhYmxlcyhjYW5keV8yMDE3KQpgYGAKCmBgYHtyfQp2aWV3KGNhbmR5XzIwMTUpCnZpZXcoY2FuZHlfMjAxNikKdmlldyhjYW5keV8yMDE3KQoKIyMgaW5jbHVkZSB0aGlzIHdpdGggdGhlIG90aGVyIDIwMTcgY2xlYW5pbmcKCnBhdHRlcm4gPC0gInErWzAtOV0rXyIKCmNhbmR5XzIwMTcgPC0gY2FuZHlfMjAxNyAlPiUgCiAgY2xlYW5fbmFtZXMoKSAlPiUgCiAgcmVuYW1lX3dpdGgofiBnc3ViKHBhdHRlcm4sICIiLCAueCkpICU+JSAKICByZW5hbWUoeDEwMF9ncmFuZF9iYXIgPSAiMTAwX2dyYW5kX2JhciIsIAogICAgICAgICBzdGF0ZSA9ICJzdGF0ZV9wcm92aW5jZV9jb3VudHlfZXRjIiwKICAgICAgICAgKQoKdmlldyhjYW5keV8yMDE1KQp2aWV3KGNhbmR5XzIwMTYpCnZpZXcoY2FuZHlfMjAxNykKCmBgYAoKYGBge3J9CmNvbXBhcmVfZGZfY29scyhjYW5keV8yMDE1LCBjYW5keV8yMDE2LCByZXR1cm4gPSAibWF0Y2giLCBiaW5kX21ldGhvZCA9ICJiaW5kX3Jvd3MiKQpgYGAKCmBgYHtyfQpjaGFuZ2VfbmFtZXMgPC0gZnVuY3Rpb24oZGF0YV9pbnB1dCl7CiAgZGF0YV9pbnB1dCAlPiUgCiAgICByZW5hbWUoZ29pbmdfb3V0ID0gImFyZV95b3VfZ29pbmdfYWN0dWFsbHlfZ29pbmdfdHJpY2tfb3JfdHJlYXRpbmdfeW91cnNlbGYiLAogICAgICAgICAgIGFnZSA9ICJob3dfb2xkX2FyZV95b3UiLAogICAgICAgICAgIGJyb3duX2dsb2JzID0gImFub255bW91c19icm93bl9nbG9ic190aGF0X2NvbWVfaW5fYmxhY2tfYW5kX29yYW5nZV93cmFwcGVycyIsCiAgICAgICAgICAgKQp9CgpjYW5keV8yMDE1IDwtIGNoYW5nZV9uYW1lcyhjYW5keV8yMDE1KQpjYW5keV8yMDE2IDwtIGNoYW5nZV9uYW1lcyhjYW5keV8yMDE2KQoKY2FuZHlfMjAxNiA8LSBjYW5keV8yMDE2ICU+JSAKICByZW5hbWUoYm9ua2VycyA9ICJib25rZXJzX3RoZV9jYW5keSIKICAgICAgICAgKQoKY2FuZHlfMjAxNSA8LSBjYW5keV8yMDE1ICU+JSAKICByZW5hbWUoYm94b19yYWlzaW5zID0gImJveF9vX3JhaXNpbnMiLAogICAgICAgICBoZXJzaGV5c19kYXJrX2Nob2NvbGF0ZSA9ICJkYXJrX2Nob2NvbGF0ZV9oZXJzaGV5IiwKICAgICAgICAgKQoKY2FuZHlfMjAxNSA8LSBjYW5keV8yMDE1ICU+JSAKICByZW5hbWUoaGVyc2hleXNfa2lzc2VzID0gImhlcnNoZXlfc19raXNzYWJsZXMiKQoKIyMgZG9udCBuZWVkIHRoZXNlIHR3byBhcyB0aGV5cmUgbm90IGNhbmR5IHNvIGdldCBkaXNjYXJkZWQgYW55d2F5CgpjYW5keV8yMDE2IDwtIGNhbmR5XzIwMTYgJT4lIAogIHJlbmFtZShkcmVzcyA9ICJ0aGF0X2RyZXNzX3RoYXRfd2VudF92aXJhbF9hX2Zld195ZWFyc19iYWNrX3doZW5faV9maXJzdF9zYXdfaXRfaXRfd2FzIikKCmNhbmR5XzIwMTUgPC0gY2FuZHlfMjAxNSAlPiUgCiAgcmVuYW1lKGRyZXNzID0gInRoYXRfZHJlc3NfdGhhdF93ZW50X3ZpcmFsX2Vhcmx5X3RoaXNfeWVhcl93aGVuX2lfZmlyc3Rfc2F3X2l0X2l0X3dhcyIpCgoKCmBgYAoKYGBge3J9CgpkYXRhXzIwMTVfMjAxNiA8LSBiaW5kX3Jvd3MoY2FuZHlfMjAxNSwgY2FuZHlfMjAxNikKYGBgCgpgYGB7cn0KdmlldyhkYXRhXzIwMTVfMjAxNikKCmNvbXBhcmVfZGZfY29scyhkYXRhXzIwMTVfMjAxNiwgY2FuZHlfMjAxNywgcmV0dXJuID0gIm1pc21hdGNoIiwgYmluZF9tZXRob2QgPSAicmJpbmQiKQpgYGAKCmBgYHtyfQpjYW5keV8yMDE3IDwtIGNhbmR5XzIwMTcgJT4lIAogIHJlbmFtZSgKICAgIGJyb3duX2dsb2JzID0gImFub255bW91c19icm93bl9nbG9ic190aGF0X2NvbWVfaW5fYmxhY2tfYW5kX29yYW5nZV93cmFwcGVyc19hX2tfYV9tYXJ5X2phbmVzIiwKICAgIGJvbmtlcnMgPSAiYm9ua2Vyc190aGVfY2FuZHkiCiAgKQoKZGF0YV8yMDE1XzIwMTYgPC0gZGF0YV8yMDE1XzIwMTYgJT4lIAogIHJlbmFtZSgKICAgIGNvdW50cnkgPSAid2hpY2hfY291bnRyeV9kb195b3VfbGl2ZV9pbiIsCiAgICBkYXkgPSAid2hpY2hfZGF5X2RvX3lvdV9wcmVmZXJfZnJpZGF5X29yX3N1bmRheSIsCiAgICBnZW5kZXIgPSAieW91cl9nZW5kZXIiCiAgKQpgYGAKCmBgYHtyfQpjb21iaW5lZF9jYW5keSA8LSBiaW5kX3Jvd3MoZGF0YV8yMDE1XzIwMTYsIGNhbmR5XzIwMTcpCgpuYW1lcyhjb21iaW5lZF9jYW5keSkKdmlldyhjb21iaW5lZF9jYW5keSkKYGBgCgojIyBheGUgYWxsIHRoZSByb3dzIHRoYXQgYXJlIG5vdCBhYm91dCBjYW5keSAtIHdvdWxkIGdpdmUgYW4gYWNjdXJhdGUgY291bnQgb2YgY2FuZHkgcmF0aW5ncwoKYGBge3J9Cm5hbWVzKGNvbWJpbmVkX2NhbmR5KQoKc3BlY2lmaWNfY2FuZHlfZGF0YSA8LSBzZWxlY3QoY29tYmluZWRfY2FuZHksIC0xOCwgLTMzLCAtMzgsIC00MSwgLTQ1LCAtNTYsIC02MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTg4LCAtOTM6LTk1LCAtOTc6LTExMiwgLTExOSwgLTEzMCwgLTEzNzotMTM5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMTQ1LCAtMTQ4Oi0xNTYpCgpuYW1lcyhzcGVjaWZpY19jYW5keV9kYXRhKQoKIyMgYnJpbmcgYWxsIG5vbi1jYW5keSBkYXRhIHRvIGJlZ2lubmluZwoKc3BlY2lmaWNfY2FuZHlfZGF0YSA8LSBzcGVjaWZpY19jYW5keV9kYXRhICU+JSAKICBzZWxlY3QodGltZXN0YW1wOmdvaW5nX291dCwgZGF5OndoaWNoX3N0YXRlX3Byb3ZpbmNlX2NvdW50eV9kb195b3VfbGl2ZV9pbiwKICAgICAgICAgaW50ZXJuYWxfaWQ6c3RhdGUsIGV2ZXJ5dGhpbmcoKSkKCiMjIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGludGVybmFsX2lkIGFuZCB0aW1lc3RhbXAgdG8ganVzdCB0aGUgeWVhcgoKCnNwZWNpZmljX2NhbmR5X2RhdGEgPC0gc3BlY2lmaWNfY2FuZHlfZGF0YSAlPiUgCiAgbXV0YXRlKHRpbWVzdGFtcCA9IGFzLmNoYXJhY3Rlcih0aW1lc3RhbXApKSAlPiUgCiAgbXV0YXRlKHRpbWVzdGFtcCA9IGlmX2Vsc2Uoc3RyX2RldGVjdCh0aW1lc3RhbXAsICIyMDE1LSsiKSwgIjIwMTUiLCAiMjAxNiIpKQoKIyBub3Qgc3VyZSBJIG5lZWQgdGhpcz8gCnNwZWNpZmljX2NhbmR5X2RhdGEgJT4lIAogIHJlbmFtZSh5ZWFyID0gInRpbWVzdGFtcCIpCgpzcGVjaWZpY19jYW5keV9kYXRhIDwtIHNwZWNpZmljX2NhbmR5X2RhdGEgJT4lIAogIG11dGF0ZShpbnRlcm5hbF9pZCA9IGFzLmNoYXJhY3RlcihpbnRlcm5hbF9pZCkpIAoKc3BlY2lmaWNfY2FuZHlfZGF0YSA8LSBzcGVjaWZpY19jYW5keV9kYXRhICU+JSAKICBtdXRhdGUoaW50ZXJuYWxfaWQgPSBpZl9lbHNlKHN0cl9kZXRlY3QoaW50ZXJuYWxfaWQsICI5MCsiKSwgIjIwMTciLCAiTk8gWUVBUiIpKQoKCgojIyBtZXJnZSB0aW1lc3RhbXAgYW5kIGludGVybmFsX2lkIHRvIGNyZWF0ZSBhIHllYXIgY29sdW1uCgpzcGVjaWZpY19jYW5keV9kYXRhIDwtICBzcGVjaWZpY19jYW5keV9kYXRhICU+JSAKICB1bml0ZSgieWVhciIsIHRpbWVzdGFtcCwgaW50ZXJuYWxfaWQsIG5hLnJtID0gVFJVRSkgJT4lCiAgbXV0YXRlKHllYXIgPSBuYV9pZih5ZWFyLCAiIikpCiMjIGRvbnQgdGhpbmsgaSBuZWVkIHRoaXMgYml0IG5vdwogIG11dGF0ZSh5ZWFyID0gcmVjb2RlKHllYXIsICIyMDE1X05BIiA9ICIyMDE1IiwgIjIwMTZfTkEiID0gIjIwMTYiLCAiMjAxN19OQSIgPSAiMjAxNyIpKQoKIyMjIyBORUVEIFRPIEZJWCB5ZWFyIHRvIG5vdCBpbmNsdWRlIE5BXzIwMTcgIyMjIwoKIyMgbWVyZ2Ugc3RhdGUgd2l0aCB3aGljaCBzdGF0ZS4uLiAKCnNwZWNpZmljX2NhbmR5X2RhdGEgPC0gIHNwZWNpZmljX2NhbmR5X2RhdGEgJT4lIAogIHVuaXRlKCJzdGF0ZV9jb3VudHkiLCBzdGF0ZSwgd2hpY2hfc3RhdGVfcHJvdmluY2VfY291bnR5X2RvX3lvdV9saXZlX2luLCBuYS5ybSA9IFRSVUUpICU+JSAKICBtdXRhdGUoc3RhdGVfY291bnR5ID0gbmFfaWYoc3RhdGVfY291bnR5LCAiIikpCgpzcGVjaWZpY19jYW5keV9kYXRhCmBgYAoKCiMjIGNsZWFuIHRoZSBhZ2UgY29sdW1uCgoKYGBge3J9CnNwZWNpZmljX2NhbmR5X2RhdGEgPC0gc3BlY2lmaWNfY2FuZHlfZGF0YSAlPiUgCiAgbXV0YXRlKGFnZSA9IHN0cl9yZXBsYWNlX2FsbChhZ2UsICJcXC5bMC05XVthLXpBLVpdWzAtOV0iLCAiIiksCiAgICAgICAgIGFnZSA9IHN0cl9yZXBsYWNlX2FsbChhZ2UsICJbQS1aYS16XStbQS1aYS16XSIsICIiKSwKICAgICAgICAgYWdlID0gc3RyX3JlcGxhY2VfYWxsKGFnZSwgIls6cHVuY3Q6XVswLTldIiwgIiIpLAogICAgICAgICAjIGRlbGV0ZWQgdGhpcyAtIGRvbnQgdGhpbmsgSSBuZWVkIGl0IGlmIEkgcHV0IGEgPyBpbiBmcm9udCBvZiBbMC05XSBhYm92ZQogICAgICAgICBhZ2UgPSBzdHJfcmVwbGFjZV9hbGwoYWdlLCAiWzpwdW5jdDpdIiwgIiIpLAogICAgICAgICBhZ2UgPSBzdHJfcmVwbGFjZV9hbGwoYWdlLCAiLi4uIiwgIiIpLAogICAgICAgICAjIHJlbW92ZWQgdGhpcyAtIGRvbnQgdGhpbmsgaXQgZG9lcyBhbnl0aGluZy4uLiAKICAgICAgICAgYWdlID0gc3RyX3JlcGxhY2VfYWxsKGFnZSwgIlthLXotQS1aXSIsICIiKSwKICAgICAgICAgYWdlID0gbmFfaWYoYWdlLCAiMCIpKQoKCiMgY2xlYW5lZCBjb3VudHJ5IGRhdGEKCmZpbmFsX2NhbmR5IDwtIHNwZWNpZmljX2NhbmR5X2RhdGEgJT4lIAogICBtdXRhdGUoY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCAiWzpwdW5jdDpdIiwgIiIpLAogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksICJbMC05XSsiLCAiIiksCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgIlt1VV1bc1NdW2FBXT8gKlthQS16Wl0/IiwgIlVTQSIpLAogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksICJbdVVdW25OXWk/dD9lZD9zPyBbc1NddD9hP3Q/ZT9zPyIsICJVU0EiKSwKICAgICAgICAgY291bnRyeSA9IGlmX2Vsc2Uoc3RyX2RldGVjdChjb3VudHJ5LCAiXlt1VV1bc1NdW2FBXSIpLCAiVVNBIiwgY291bnRyeSksCiAgICAgICAgIGNvdW50cnkgPSBpZl9lbHNlKHN0cl9kZXRlY3QoY291bnRyeSwgIlt1VV1bc1NdW2FBXSQiKSwgIlVTQSIsIGNvdW50cnkpLAogICAgICAgICBjb3VudHJ5ID0gc3RyX3JlcGxhY2VfYWxsKGNvdW50cnksICJbY0NdW2FBXVtuTl1bYUFdP1tkRF0/W2FBXT9bZUVdPytgPyIsICJDYW5hZGEiKSwKICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCAiW3VVXVtuTl1baUldW3RUXVtlRV1bZERdICtba0tdW2lJXVtuTl1bZ0ddP1tkRF1bb09dW21NXSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVLIiksCiAgICAgICAgIGNvdW50cnkgPSBzdHJfcmVwbGFjZV9hbGwoY291bnRyeSwgIltlRV1uZD9nP2xhbmQiLCAiVUsiKSwKICAgICAgICAgY291bnRyeSA9IHN0cl9yZXBsYWNlX2FsbChjb3VudHJ5LCAiW3VVXVtrS10iLCAiVUsiKSwKICAgICAgICAgY291bnRyeSA9IHJlY29kZShjb3VudHJ5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiTXVyaWNhIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVVNBIFVTQSIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIFlvbyBFc3Mgb2YgQWFheXl5eXl5IiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVVNBIG9mIEFtZXJpY2EiID0gIlVTQSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICJVU0FBIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVVNBU0EgVVNBIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGJlc3Qgb25lIFVTQSIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiVVNBIHRoaW5rIGJ1dCBpdHMgYW4gZWxlY3Rpb24geWVhciBzbyB3aG8gY2FuIHJlYWxseSB0ZWxsIiA9ICJVU0EiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJBbWVyaWNhIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5pdHMgU3RhdGVzIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVVNBU0EiID0gIlVTQSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICJTdWJDYW5hZGlhbiBOb3J0aCBBbWVyaWNhIE1lcmljYSIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVyaWNhIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJ1bXBpc3RhbiIgPSAiVVNBIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlVTQXRlcyIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiYW1lcmljYSIgPSAiVVNBIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlVTQVNBIFVTQVNBIiA9ICJVU0EiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EiID0gIlVTQSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBVU0Egb2YgQW1lcmljYSIgPSAiVVNBIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaGluZ2VkIHN0YXRlcyIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiVSBTIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9ydGggQ2Fyb2xpbmEiID0gIlVTQSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICJQaXR0c2J1cmdoIiA9ICJVU0EiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJOZXcgWW9yayIgPSAiVVNBIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbGlmb3JuaWEiID0gIlVTQSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICJOZXcgSmVyc2V5IiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxhc2thIiA9ICJVU0EiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAidSBzIGEiID0gIlVTQSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkFoZW1BbWVyY2EiID0gIlVTQSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1YkNhbmFkYWlhbiBOb3J0aCBBbWVyaWNhIE1lcmljYSIgPSAiVVNBIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IHRoZSBVU0FyIENhbmFkYSIgPSAiQ2FuYWRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiU2NvdGxhbmQiID0gIlVLIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAibXVycmlrYSIgPSAiVVNBIiksCiAgICAgICAgIGNvdW50cnkgPSBpZl9lbHNlKGNvdW50cnkgPT0gYygiVVNBIiwgIlVLIiwgIkNhbmFkYSIpLCBjb3VudHJ5LCAiT3RoZXIiKQogICAgICAgICApCgpmaW5hbF9jYW5keQoKYGBgCgoKIyMgY2xlYW4gdGhlIGNvdW50cnkgY29sdW1uCgpgYGB7cn0Kc3BlY2lmaWNfY2FuZHlfZGF0YSAlPiUgCiAgZGlzdGluY3QoY291bnRyeSkKYGBgCgoKCiMjIGNvdW50IGFsbCBzd2VldCByYXRpbmdzL3Jldmlld3MKCi0gZG8gdGhpcyBieSBzdW1tYXJpc2UgYWNyb3NzIHRoZSBjb2x1bW5zIHlvdSB3YW50LiA=